It is common in electronic computing systems or devices having graphics displays, such as cell phones, to overlay one image on top of another. Typically, the main, or underlying image is covered by the overlay image so that, where the main and overlay images overlap, the main image is not visible. One particular example of overlaying occurs where it is desired to provide a picture frame or border around an image. Similarly, other geometric shapes or text may be superimposed over an image.
In such applications, the overlay image defines pixels that are transparent and pixels that are not transparent, or opaque. Where the overlay image is transparent, the underlying main image is visible, and where the overlay image is opaque, only the overlay image is visible. Pixels in the overlay image can be defined as being transparent or opaque by the use of appropriate coding. For example, particular colors can be defined as being transparent while other colors can be defined as being opaque.
In many cell phones, the main image is produced by a camera. A graphics controller includes a camera interface for interfacing to the camera. The graphics controller resizes the camera data and converts the camera data from YUV to RGB color format for storage in an on-board display buffer. The graphics controller also receives an overlay image from a host CPU and stores the overlay image data in the display buffer as well. The overlay image and the main image may or may not be the same size.
The graphics controller fetches a main image pixel and a corresponding overlay image pixel from the display buffer and combines the two pixels. This sequence is performed for every pixel in the main image, to form composite image data The composite image data are provided to an interface for interfacing to a display device.
One problem with the methodology described above is that it requires a significant amount of memory, because both images are stored in the display buffer. This problem is exacerbated if the overlay image is the same size as the main image, so that twice the amount of memory required for the main image is required for the composite. Another problem with the methodology is that a main image which is too large to fit within the display buffer cannot be displayed.
Accordingly, there is a need for a memory efficient method and apparatus for displaying large overlaid camera images that solves these problems.